treeview: Fix horizontal position during column dragging
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 9 Jul 2014 14:18:05 +0000 (16:18 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 10 Jul 2014 01:28:45 +0000 (21:28 -0400)
Code was expecting view coordinates, not widget ones, as we're
only dealing with horizontal displacements, just adding the
horizontal adjustment value suffices.

https://bugzilla.gnome.org/show_bug.cgi?id=732933

gtk/gtktreeview.c

index 3adba8e4a432c85c794184b173bd1d0069490aca..7a64921f038cd67b6b7be1761f7e391a49f6bea5 100644 (file)
@@ -4154,6 +4154,7 @@ gtk_tree_view_update_current_reorder (GtkTreeView *tree_view)
     (GTK_GESTURE_SINGLE (tree_view->priv->column_drag_gesture));
   gtk_gesture_get_point (tree_view->priv->column_drag_gesture,
                          sequence, &x, NULL);
+  x += gtk_adjustment_get_value (tree_view->priv->hadjustment);
 
   for (list = tree_view->priv->column_drag_info; list; list = list->next)
     {
@@ -4223,6 +4224,8 @@ gtk_tree_view_horizontal_autoscroll (GtkTreeView *tree_view)
                          sequence, &x, NULL);
   gtk_tree_view_get_visible_rect (tree_view, &visible_rect);
 
+  x += gtk_adjustment_get_value (tree_view->priv->hadjustment);
+
   /* See if we are near the edge. */
   offset = x - (visible_rect.x + SCROLL_EDGE_SIZE);
   if (offset > 0)
@@ -4251,6 +4254,7 @@ gtk_tree_view_motion_drag_column (GtkTreeView *tree_view,
   gint win_x, win_y;
 
   button = gtk_tree_view_column_get_button (column);
+  x += gtk_adjustment_get_value (tree_view->priv->hadjustment);
 
   /* Handle moving the header */
   gdk_window_get_position (tree_view->priv->drag_window, &win_x, &win_y);